﻿using System;

namespace FscNET.Tracing
{
    [Flags]
    public enum TraceCategory : uint
    {
        /// <summary>
        /// Application - Assert
        /// </summary>
        EA = 0x00000001,
        /// <summary>
        /// Application - Normal
        /// </summary>
        EE = 0x00000002,
        /// <summary>
        /// Application - Message
        /// </summary>
        EM = 0x00000004,
        /// <summary>
        /// Application - Stack
        /// </summary>
        ES = 0x00000008,
        /// <summary>
        /// Application - Warning
        /// </summary>
        EW = 0x00000010,
        /// <summary>
        /// Application - Extended
        /// </summary>
        EX = 0x00000020,

        /// <summary>
        /// Components - Assert
        /// </summary>
        CA = 0x00000040,
        /// <summary>
        /// Components - Normal
        /// </summary>
        CC = 0x00000080,
        /// <summary>
        /// Components - Message
        /// </summary>
        CM = 0x00000100,
        /// <summary>
        /// Components - Stack
        /// </summary>
        CS = 0x00000200,
        /// <summary>
        /// Components - Warning
        /// </summary>
        CW = 0x00000400,
        /// <summary>
        /// Components - Extended
        /// </summary>
        CX = 0x00000800,

        /// <summary>
        /// Kernel - Assert
        /// </summary>
        KA = 0x00001000,
        /// <summary>
        /// Kernel - Normal
        /// </summary>
        KK = 0x00002000,
        /// <summary>
        /// Kernel - Message
        /// </summary>
        KM = 0x00004000,
        /// <summary>
        /// Kernel - Stack
        /// </summary>
        KS = 0x00008000,
        /// <summary>
        /// Kernel - Warning
        /// </summary>
        KW = 0x00010000,
        /// <summary>
        /// Kernel - Extended
        /// </summary>
        KX = 0x00020000,

        /// <summary>
        /// Tools - Assert
        /// </summary>
        TA = 0x00040000,
        /// <summary>
        /// Tools - Normal
        /// </summary>
        TT = 0x00080000,
        /// <summary>
        /// Tools - Message
        /// </summary>
        TM = 0x00100000,
        /// <summary>
        /// Tools - Stack
        /// </summary>
        TS = 0x00200000,
        /// <summary>
        /// Tools - Warning
        /// </summary>
        TW = 0x00400000,
        /// <summary>
        /// Tools - Extended
        /// </summary>
        TX = 0x00800000,

        /// <summary>
        /// Framework - Assert
        /// </summary>
        FA = 0x01000000,
        /// <summary>
        /// Framework - Normal
        /// </summary>
        FF = 0x02000000,
        /// <summary>
        /// Framework - Message
        /// </summary>
        FM = 0x04000000,
        /// <summary>
        /// Framework - Stack
        /// </summary>
        FS = 0x08000000,
        /// <summary>
        /// Framework - Warning
        /// </summary>
        FW = 0x10000000,
        /// <summary>
        /// Framework - Extended
        /// </summary>
        FX = 0x20000000,

        /// <summary>
        /// Information
        /// </summary>
        II = 0x40000000
    }
}
